package com.sca.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sca.order.entity.Stock;

import java.util.List;

/**
 * @author liuxianfei
 * @since 2020/11/3 11:49
 */
public interface StockService extends IService<Stock> {

    /**
     * 减扣库存
     *
     * @param goodId 商品id
     * @param num    减扣数量
     * @return true：减扣成功，false：减扣失败
     */
    Boolean subtract(Long goodId, Integer num);

    /**
     * 增加库存
     *  @param goodId 商品id
     * @param num    数量
     * @param type   0：回填库存，1：新增库存
     */
    Boolean addStock(Long goodId, Integer num, Integer type);

    /**
     * redis减扣库存
     *
     * @param keys keys
     * @param num  减扣数量
     */
    Long decrStock(List<String> keys, Integer num);

}
